package abd.pr1.Mappers;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import abd.pr1.Models.ComentarioSerie;
import abd.pr1.Models.PersonajeActor;

public class PersonajesActoresMapper extends AbstractMapper<PersonajeActor, ClavePersonajeActor>{

	private static final String[] PERSONAJES_ACTORES_KEY_COLUMN_NAMES = new String[] { "id_personaje","id_actor","id_episodio" };
	private static final String[] PERSONAJES_ACTORES_COLUMN_NAMES = new String[] { "id_personaje","id_actor", "id_episodio"};
	private static final String PERSONAJES_ACTORES_TABLE_NAME = "personajes_actores";
	
	public PersonajesActoresMapper(DataSource ds) {
		super(ds);
	}

	@Override
	protected String getTableName() {
		return PERSONAJES_ACTORES_TABLE_NAME;
	}

	@Override
	protected String[] getColumnNames() {
		return PERSONAJES_ACTORES_COLUMN_NAMES;
	}

	@Override
	protected Object[] serializeObject(PersonajeActor object) {
		return new Object[] { object.getId_personaje(),object.getId_actor(), object.getId_episodio()};
	}

	@Override
	protected String[] getKeyColumnNames() {
		return PERSONAJES_ACTORES_KEY_COLUMN_NAMES;
	}

	@Override
	protected Object[] serializeKey(ClavePersonajeActor key) {
		return new Object[] { key.getId_personaje(), key.getId_actor(), key.getId_episodio()};
	}

	@Override
	protected PersonajeActor buildObject(ResultSet rs) throws SQLException {
		
		Integer id_personaje = rs.getInt("id_personaje");
		Integer id_actor = rs.getInt("id_actor");
		Integer id_episodio = rs.getInt("id_episodio");
		
		return new PersonajeActor(id_personaje, id_actor, id_episodio);
	}

	@Override
	protected ClavePersonajeActor getKey(PersonajeActor object) {
		return new ClavePersonajeActor(object.getId_personaje(), object.getId_actor(), object.getId_episodio());
	}

	@Override
	protected boolean hasAutoincrementKey() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	void updateKeys(ResultSet rs, PersonajeActor object) throws SQLException {
		// TODO Auto-generated method stub
		
	}

	
	
}
